home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / sound / players / naudio.lzh / naudio / doc / intro_s.txt next >
Text File  |  1993-11-23  |  9KB  |  287 lines

  1. INTRO
  2.  
  3. NAUDIO: Die Library die hardwareunabhängi-
  4. ge Soundprogrammierung auf allen 16/32-Bit
  5. Ataris ermöglicht! Die ideale Bibliothek für
  6. den Spieleprogrammierer oder denjenigen,
  7. dem für sein Programm noch der entschei-
  8. dende Pfiff fehlt.
  9.  
  10. Die Mulle KybernetiK NAUDIO-Library ermöglicht
  11. es auf einfachste Weise Samples und ProTrak-
  12. kermodule zu laden, abzuspielen und wieder zu
  13. speichern. Dabei erledigt NAUDIO die ganze Ar-
  14. beit und läßt ihnen Raum und Zeit für die eigent-
  15. liche Applikationsprogrammierung.
  16. NAUDIO wurde mit und für den PURE C-Compi-
  17. ler/Assembler entwickelt. Durch die PURE-C ei-
  18. gene Funktionsaufrufskonvention ist es den mei-
  19. sten anderen C-Compilern versagt, NAUDIO zu
  20. benutzen. Assemblerprogrammierern hingegen
  21. sind keine Einschränkungen auferlegt. Da das
  22. Objektformat zu PURE-PASCAL kompatibel ist,
  23. sollte es möglich sein, auch mit diesem Produkt
  24. NAUDIO-Applikationen zu schreiben.
  25. Hier ein kleiner Ausschnitt dessen, was die NAU-
  26. DIO-Software leistet:
  27.  
  28. o  Lädt 8-bit-Samples der Formate, 8SVX
  29.    (Amiga IFF Format), 'rohe' Sampledaten
  30.    und SampleStar Dateien sowie das Mulle
  31.    KybernetiK NSVX Format
  32. o  Speichert 8-bit-Samples im NSVX- und
  33.    8SVX-Format oder 'roh'. Wahlweise mit
  34.    Kompression
  35. o  Komprimiert Samples entweder
  36.    verlustfrei, (die Kompressionsrate liegt
  37.    typischerweise bei 10-40%), oder mit
  38.    Verlust (Kompressionsrate immer 50%)
  39. o  Spielt ProTracker Module
  40. o  Spielt NT_COMP Segmentdateien
  41. o  Benutzt folgenden Ausgabegeräte:
  42.    PSG Soundchip (ST)
  43.    SampleStar Sampler (Printer Port)
  44.    STE Digital DMA Audio 2 x 8 Bit
  45.    FALCON Digital DMA Audio 8 x
  46.    16 Bit
  47. o  Die Ausgabefrequenz ist  variabel
  48. o  Automatische Erkennung von unsigned
  49.    und signed Samples beim Laden 'roher'
  50.    Sampledaten
  51. o  Spielt bis zu acht Samples gleichzeitig,
  52.    davon garantiert vier auf jedem
  53.    Ausgabegerät.
  54. o  Lautstärke und Abspielgeschwindigkeit
  55.    der Samples können zur Abspielzeit
  56.    verändert werden
  57. o  Abspielen erfolgt im Hintergrund,
  58.    ungestört von Mausbewegungen!
  59. o  Durch extrem optimierten Kode äußerst
  60.    CPU-Zeit sparend
  61. o  Durch modularen Aufbau vielseitig
  62.    einsetz- und veränderbar
  63.  
  64. Die Einfachheit der Benutzung von NAUDIO läßt
  65. sich am besten durch zwei kleine Beispielpro-
  66. gramme verdeutlichen. Das erste lädt ein
  67. Sample aus einer Datei und spielt dieses mit der
  68. Frequenz ab, mit der es aufgenommen wurde:
  69. #include <naudio\naudio.h>
  70.  
  71. char  file[] = "..\\samples\\zarths.nsx"
  72.  
  73. main()
  74. {
  75.    n_sample    *p;
  76.    channel     *q;
  77.  
  78.    naudio_init();
  79.    naudio_all();
  80.    naudio_engine( SAMPLES);
  81.    if( p = nsample_load( file))
  82.    {
  83.       naudio_start( 0);
  84.       q = nsample_play( p, 0, 64, 1);
  85.       while( q->play);
  86.       naudio_done();
  87.    }
  88.    return( 0);
  89. }
  90.  
  91. Das nächste Beispielprogramm - dem ersten
  92. sehr ähnlich - lädt und spielt ein ProTracker Mo-
  93. dul:
  94.  
  95. #include <naudio\naudio.h>
  96.  
  97. char  file[] = "..\\modules\\beat_dis.mod";
  98. main()
  99. {
  100.    n_module    *p;
  101.  
  102.    naudio_init();
  103.    naudio_all();
  104.    naudio_engine( NTRACKER);
  105.    if( p = nmodule_load( file))
  106.    {
  107.       naudio_start( 0);
  108.       nmodule_play( p, 0, 0L, 0, 2);
  109.       while( ntrack->song);
  110.       naudio_done();
  111.    }
  112.    return( 0);
  113. }
  114.  
  115. Die Handhabung der NAUDIO-Software ist so
  116. einfach, daß selbst C-Anfänger, die vielleicht ei-
  117. nen Monat Programmierpraxis haben, bereits
  118. diese Software benutzen und interessante Pro-
  119. gramme schreiben können
  120.  
  121.  
  122. Vorwort & Legalitäten
  123.  
  124. Die Dokumentation ist in drei Abschnitte unter-
  125. teilt. Da ist zum einen die "Einführung", die an-
  126. hand von kleinen Beispielprogrammen die NAU-
  127. DIO-Library unter die Lupe nimmt und als einfüh-
  128. render Text firmiert. Mit Hilfe der Einführung sollte
  129. es selbst dem blutigen Anfänger in kürzester Zeit
  130. möglich sein, 'geil' klingende Programme zu
  131. schreiben, um die Nachbarschaft und Anver-
  132. wandten damit zu beeindrucken.
  133. Die Kapitel des "Technischen Handbuchs" (T.H.)
  134. behandeln die technischen Aspekte von NAU-
  135. DIO und beleuchten auch obskurste Details. Das
  136. "Reference Manual" (R.M.) ist das Nachschlage-
  137. werk für die Variablen und Funktionen der Biblio-
  138. thek.
  139. Das R.M. ist in Englisch! Da die PURE Libraries
  140. aber auch nicht anders dokumentiert worden
  141. sind, hält sich das Schamgefühl darüber in Gren-
  142. zen.
  143. Die NAUDIO-Bibliothek ist natürlich! nach be-
  144. stem Wissen und Gewissen geschrieben worden
  145. und hat inklusive Dokumentationserstellung
  146. mehr als zwei Jahre Arbeit verschlungen. Es ist
  147. zwar nicht sooo kompliziert, digitalen Sound auf
  148. dem ST erzeugen(1), aber eine gut strukturierte
  149. Bücherei zu schreiben, die möglichst vielen ver-
  150. schiedenen Anwendungen gerecht wird, darüber
  151. hinaus einfach zu verwenden und dabei tech-
  152. nisch anspruchsvoll ist, braucht denn doch seine
  153. Zeit. Zudem benötigt die Dokumentation auch
  154. ein erkleckliches Zeitquantum.
  155. Mulle KybernetiK kann keinerlei Garantien oder
  156. Versprechungen in Bezug auf die Performanz der
  157. Bibliothek und Ihrer Einsetzbarkeit in allen Le-
  158. benslagen machen. Eine Haftung für Folgeschä-
  159. den die aus der Benutzung oder fehlenden Nutz-
  160. barkeit der Bibliothek auftreten könnten, wird
  161. nicht übernommen.
  162. Trotz dieser legalen Einschränkungen, viel Spaß
  163. mit NAUDIO
  164.  
  165.  
  166. Installation
  167.  
  168. Am besten: Sie machen die Installation nach
  169. "Gefühl". Die Includedateien müssen in einem
  170. Ordner NAUDIO in ihrem Includeverzeichnis ste-
  171. hen und die Objektdateien sollten in ihrem Libra-
  172. ryverzeichnis stehen.
  173.  
  174. Ansonsten:  Kopieren sie von Ihrer Diskette, den
  175. Ordner NAUDIO\HEADER\NAUDIO in den Ordner,
  176. der ihre Includedateien oder Headerdateien ent-
  177. hält. Kopieren sie den  Inhalt des Ordners NAU-
  178. DIO\LIB in den Ordner der ihre sonstigen Funkti-
  179. onsbibliotheken enthält. Also sollte die Directory-
  180. struktur ähnlich dieser aussehen (es wird nur ein
  181. Ausschnitt gezeigt):
  182.  
  183.    ..\HEADER\
  184.    ..\HEADER\NAUDIO
  185.    ..\HEADER\NAUDIO\ndefines.h
  186.    ..\HEADER\NAUDIO\naudio.h  etc.
  187.  
  188.    ..\LIB\PCSTART.O
  189.    ..\LIB\PCGEMLIB.LIB
  190.    ..\LIB\NAUDIO.LIB
  191.    ..\LIB\HELPER.LIB
  192.    ..\LIB\DACS\SDAC2.O
  193.    ..\LIB\STD.TLK
  194.    ..\LIB\NAUDIO.PRJ
  195.  
  196. Bevorzugen sie einen CLI (Gulam, o.ä.) anstelle
  197. der PURE-C Graphik-Shell (weise Entscheidung),
  198. dann geht es so am elegantesten:
  199. Kopieren sie den gesamten Ordner NAUDIO auf
  200. eine Partition ihrer Festplatte oder aber auf eine
  201. andere Diskette.
  202.  
  203. Geben sie dem Compiler einen alternativen In-
  204. cludepfad an. Der PURE-C Compiler pcc erlaubt
  205. die mehrfache Nutzung des -I Switches. Also so
  206. z.B.:
  207.    pcc -I\pc\include -I\naudio\header foo.c
  208.  
  209. Auch ihr Linker muß wissen, wo die NAUDIO-Bü-
  210. chereien sind, die zu ihrem Programmtext dazu-
  211. gebunden werden sollen. Da Pure Software einen
  212. -L Switch zur Angabe eines Librarypfades
  213. vergessen hat, muß man sich auf andere Weise
  214. behelfen.
  215. Glücklicherweise erlaubt der Linker die Mehr-
  216. fachnutzung der -c Option, mit der Kommando-
  217. dateien eingelesen werden. Man erstellt sich also
  218. eine Datei namens "NAUDIO.TLK" in der sämtli-
  219. che Pure Bibliotheken und die im NAUDIO\LIB
  220. Ordner stehenden Libraries angegeben werden:
  221.  
  222.    d:\lib\pcfltlib.lib
  223.    d:\lib\pcextlib.lib
  224.    d:\lib\pcstdlib.lib
  225.    d:\lib\pctoslib.lib
  226.    d:\lib\pcgemlib.lib
  227.    d:\lib\pclnalib.lib
  228.    d:\naudio\lib\naudio.lib
  229.    d:\naudio\lib\nalloc.lib
  230.    d:\naudio\lib\dacs\sdac2.o
  231.  
  232. Beim Aufruf von plink hieße es dann:
  233.  
  234. plink -o=foo.prg d:\lib\pcvstart.o foo.o
  235.      -c=NAUDIO.TLK
  236.  
  237. Da wie gesagt plink auch Mehrfachnutzung von
  238. -c erlaubt wäre auch folgendes möglich
  239.  
  240. plink -o=bar.prg d:\lib\pcvstart.o
  241.      -c=projekt.tlk -c=NAUDIO.TLK
  242.  
  243. Eine Beispiellinkdatei ist in dem LIB-Ordner als
  244. STD.TLK Datei zu finden.
  245.  
  246. Leider ist es anscheinend in der PURE-C Gra-
  247. phikshell (also PC.PRG) immer noch nicht mög-
  248. lich, einen zweiten Librarypfad anzugeben. Aus
  249. diesem Grunde scheint es für PC-Benutzer zwin-
  250. gend zu sein, die Libraries aus dem NAUDIO\LIB
  251. Ordner in den Ordner der anderen PC Libraries
  252. zu kopieren. Wenn man möchte kann man je-
  253. doch dem PC-Compiler einen zweiten Include-
  254. pfad angeben, indem man in dem Menüeintrag
  255. Settings/Compiler hinter dem dort stehende De-
  256. faultwert einen zweiten Pfad, abgetrennt durch
  257. ein Semikolon ';', eingibt. Al